interface Person {
    firstName: string
    lastName: string
    age: number
}

// extends关键字会从继承的接口里面拷贝属性类型，这样就不必书写重复的属性。
interface Circle extends Person {
    radius: number
}


/*
interface 与 type 的区别有下面几点。
（1）type能够表示非对象类型，而interface只能表示对象类型（包括数组、函数等）。
（2）interface可以继承其他类型，type不支持继承。
*/
type PersonType = {
    firstName: string;
    lastName: string;
    age: number;
}

/*type定义的对象类型如果想要添加属性，只能使用&运算符，重新定义一个类型。*/
type Bear = PersonType & { radius: number }


const person1: Person = {
    firstName: "陶",
    lastName: "品奇",
    age: 23
}

const Person2: Bear = {
    firstName: "陶",
    lastName: "品奇",
    age: 23,
    radius: 100
}





